package itheima.jdk8.stream;


import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;

public class StreamTest11 {

    public static void main(String[] args) {
/*        List<String> list = Arrays.asList("hello welcome", "world hello",
                "hello world hello", "hello welcome");*/
        List<String> list = Arrays.asList("1231231", "23232",
                "1231 world hello", "3112 welcome");

//        List<String[]> result = list.stream().map(item -> item.split(" ")).distinct().
//                collect(Collectors.toList());
         //split 返回的是个String【】字符串类型的数组，直接打印的话是这个样子的
        //[[Ljava.lang.String;@5a39699c, [Ljava.lang.String;@3cb5cdba,
        // [Ljava.lang.String;@56cbfb61, [Ljava.lang.String;@1134affc]
//        result.forEach(item -> Arrays.asList(item).forEach(System.out::println));

        System.out.println(list.stream().map(item -> item.split(" ")).distinct().collect(Collectors.toList()));

        //flatmap 当首次map根据 item.split(" ") 这个条件映射为一个数组之后 可能返回的只是一个数组对象
        //我想操作的是数组对象当中的元素  flatMap(Arrays::stream)  这个表达式是通吃的！！
        List<String> result = list.stream().map(item -> item.split(" ")).flatMap(Arrays::stream).distinct().
                collect(Collectors.toList());
        System.out.println("第一次迭代----》"+result);

        result.forEach(System.out::println);

    }
}
